package main

import (
	"fmt"
	"strings"
)

// func 函数名称(接收的参数 参数类型)
// func 函数名称(参数1, 参数2 参数类型) (返回值1, 返回值2 返回值的类型){代码块/函数体}
// func 函数名称(参数1, 参数2 类型) {代码块/函数体}

// 定义一个函数，用来判断两个数据的大小，并返回最大值
func max(num1, num2 int) int {
	if num1 > num2 {
		return num1
	} else {
		return num2
	}
}

// 具名返回值形式
func sumNum(x, y int) (sumN int) {
	sumN = x + y
	return
}

// 接收不定长度参数的函数
// 就是可以传入任意数量的参数，但是只能传入一种类型的参数
func hasName(s ...string) string {
	// 接收到的参数是个切片

	// for _, v := range s {
	// 	fmt.Println(v)
	// }
	m := strings.Join(s, "+")
	return m
}

func main() {
	fmt.Println(hasName("哈哈", "哈哈"))

	Maxnum := max(10, 20)
	fmt.Println(Maxnum)
	fmt.Println(sumNum(1, 2))
	// 可以将重复的代码封装成函数，然后在需要的地方调用该函数。
	//逻辑上属于同一个功能的代码可以封装成一个函数。
	// 函数可以接收参数，可以返回结果。
	// 函数可以降低代码的重复率，提高代码的可读性。

}
